home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Belgian Amiga Club - ADF Collection
/
BS1 part 05.zip
/
BS1 part 5
/
ANC_UTULITYS_16.adf
/
arclist
/
asm1.arc
/
pas111.S
< prev
next >
Wrap
Text File
|
1988-09-21
|
19KB
|
922 lines
;
;
;
; P.A.S. MENU INTRO, WRITTEN ON 3/4 '88
;
; © 1988 By AntiAction
;
;
;
; STUPIDITY IS THE WORD, BYTE BANDIT!
;
beg: ; As usual...
movem.l d0/d1/d2/d3/d4/d5/d6/d7/a0/a1/a2/a3/a4/a5/a6,-(a7)
move.l a7,InitialSP ; Just to be on the safe side
bsr AllocnLoad ; Allocate memory & load files
bsr SwitchOSout ; Switch out Operating System
bsr InitScreenStuff ; Do screen initialization
bsr InitMusic
bsr Initchips ; Setup Custom chip pointers
bsr Initint ; Setup Interrupts.
bsr Wait ; Handle input stuff
bsr Resetint ; Reset interrupts
bsr Resetchips ; Reset custom chips
bsr ResetMusic
bsr SwitchOSin ; Switch in Operating System.
bsr DeAlloc ; Deallocate memory
move.l InitialSP,a7 ; Restore Stack Frame Pointer
movem.l (a7)+,a0/a1/a2/a3/a4/a5/a6/d0/d1/d2/d3/d4/d5/d6/d7
;bsr Executeprogram
;bra.s beg
rts
Executeprogram:
move.l dosbase,a6
move.l exestring,d1
moveq #0,d2
moveq #0,d3
jsr -222(a6) ; Execute()
rts
exestring:dc "df0:c/execute df0:s/"
digits:dc "00",0,0
InitMusic:
jsr $7ef00
rts
ResetMusic:
move.w #$f,$dff096
rts
InitialSP:dc.l 0 ; Hold initial SP
SwitchOSout: ; Switch out disturbing stuff.
move.l $4,a6 ; System Base
lea gfxlib,a1
clr.l d0
jsr -552(a6) ; _LVOOpenLibrary
move.l d0,gfxbase ; Save Graphics_lib base
jsr -$84(a6) ; _LVOForbid
;jsr -$96(a6) ; _LVOSuperState
;move.l d0,systack ; System stack
rts
systack:dc.l 0
gfxlib:dc "graphics.library",0,0
gfxbase:dc.l 0
Initchips: ; Initialize custom chips
move.w $dff01c,intesave
move.w $dff01e,intrsave
move.w $dff002,dmasave
move.w $dff010,adksave
move.w #%0111111111111111,$dff096 ; DMACONW
move.w #%1000001111100000,$dff096 ; Disable disk access.
move.w #%0111111111111111,$dff09a ; INTENA
move.w #%1100000000110100,$dff09a ; Enable desired IRQ's
rts
intesave:dc.w 0
intrsave:dc.w 0
dmasave:dc.w 0
adksave:dc.w 0
InitInt: ; Initialize interrupts
move.l $6c,level3save ; Save level 3 vector
move.l $6c,af3+2
move.l $68,level2save ; Save level 2 vector
move.l $68,af2+2
move.l #level2irq,$68 ; Set new interrupt vector 2
move.l #level3irq,$6c ; Set new interrupt vector 3
rts
level2save:dc.l 0
level3save:dc.l 0
holdjoy1:dc.w 0
holdjoy2:dc.w 0
hold0:dc.l 0
hold1:dc.l 0
Wait: ; Wait.
moveq #0,d0
move.w $dff00a,holdjoy1
nothere:
cmpi.b #$2b,$dff006
bne.s nothere
move holdjoy1,d0
move.w $dff00a,holdjoy2
cmp.w holdjoy2,d0
beq.s nomove
bsr doit
moveq #0,d0
move.w $dff00a,d0
lsr.w #8,d0
lsr.w #4,d0
move.l d0,hold0
move.b d0,hold1
move.w $dff00a,d0
andi.w #$80,d0
beq.s leftright
cmpi.b #8,hold1
bgt.s nomove
addq.b #8,hold1
bra.s nomove
leftright:
cmpi.b #8,hold1
blt.s nomove
subq.b #8,hold1
nomove:
btst #6,$bfe001
bne.s nothere
moveq #0,d0
move.b hold1,d0 ; Prepare execute string
divu #10,d0
add.b #48,d0
move.b d0,digits
swap d0
add.b #48,d0
move.b d0,digits+1
rts
doit:
moveq #0,d0
move.b hold1,d0
lea mcol+2,a0
moveq #0,d7
move.w #$f00,d3
doitwillya:
move.w d3,(a0)
eor.w #$f0f,d3
cmp.b d7,d0
bne.s nothishuh
move.w #$fff,(a0)
nothishuh:
addq.l #4,a0
addq.b #1,d7
cmpi.b #$8,d7
bne.s nonowhuh
eor.w #$0f0f,d3
nonowhuh:
cmpi.b #$10,d7
bne.s doitwillya
rts
ResetInt: ; Reset Interrupts
move.l level3save,$6c ; Restore level 3 vector
move.l level2save,$68 ; Restore level 2 vector
rts
Resetchips: ; Reset custom chips
move.w intesave,d7
bset #$f,d7
move.w d7,$dff09a ; Reset Interrupts
move.w intrsave,d7
bset #$f,d7
move.w d7,$dff09c ; Reset interrupt request
move.w dmasave,d7
bset #$f,d7
move.w d7,$dff096 ; Reset DMAConw
move.w adksave,d7
bset #$f,d7
move.w d7,$dff09e ; Reset ADK
move.l gfxbase,a0
move.l $26(a0),$dff080
rts
SwitchOSIn: ; Allow OS to operate again.
move.l 4,a6 ; System Base
jsr -$8a(a6) ; _LVOPermit
;move.l systack,d0 ; Systemstack
;jsr -$9c(a6) ; _LVOUserState
rts
level2irq:
movem.l d0/d1/d2/d3/d4/d5/d6/d7/a0/a1/a2/a3/a4/a5/a6,-(a7)
; A DO-NOTHING ROUTINE
movem.l (a7)+,d0/d1/d2/d3/d4/d5/d6/d7/a0/a1/a2/a3/a4/a5/a6
af2:jmp 0
AllocnLoad:
move.l #$10000,d0 ; ByteSize
lea $6e000,a1 ; Location
move.l 4,a6 ; AbsExecBase
jsr -$cc(a6) ; AllocAbs
move.l #$10000,d0 ; ByteSize
lea $50000,a1 ; Location
jsr -$cc(a6) ; AllocAbs
lea dosname,a1
moveq #31,d0 ; Lowest version = 1.1
jsr -552(a6) ; OpenLibrary
move.l d0,dosbase
move.l d0,a6 ; Save Dos.library base
move.l #muzakname,d1
move.l #1005,d2 ; Filename & accessmode.
jsr -30(a6) ; Open
move.l d0,d7
move.l #$6e15c,d2 ; Buffer
move.l #$fffff,d3 ; Length
move.l d7,d1 ; Filehandle
jsr -42(a6) ; Read
move.l d7,d1
jsr -36(a6) ; Close file
rts
muzakname:dc "df0:menustuff",0
dosname:dc "dos.library",0
dosbase:dc.l 0
DeAlloc:
lea $6e000,a1
move.l #$10000,d0
move.l 4,a6
jsr -210(a6) ; Free some memory
lea $50000,a1
move.l #$10000,d0
jsr -210(a6) ; FreeMem
rts
InitScreenStuff:
move.l gfxbase,a6 ; Use graphics.library
lea bitmap,a0
move.l #5,d0
move.l #320,d1
move.l #200,d2 ; init a 32 color 320x200 scrn
jsr -$186(a6) ; InitBitMap
move.l #$50000,bitmap+8 ; First Bitplane
move.l #$51f40,bitmap+12 ; Second Bitplane
move.l #$53e80,bitmap+16 ; Third BitPlane
move.l #$55dc0,bitmap+20 ; Fourth BitPlane
move.l #$57d00,bitmap+24 ; Fifth Bitplane
lea rastport,a1
jsr -198(a6) ; InitRastPort
move.l #bitmap,rastport+4
lea scbitmap,a0
move.l #1,d0
move.l #$180,d1
move.l #10,d2 ; init a 2 color 400x10 scrn
jsr -$186(a6) ; InitBitMap
move.l #$5a000,scbitmap+8 ; First Bitplane
lea scrastport,a1
jsr -198(a6) ; InitRastPort
move.l #scbitmap,scrastport+4 ; struct BitMap *bitmap
lea rastport,a1
jsr -48(a6) ; ClearScreen
lea scrastport,a1
jsr -48(a6) ; ClearScreen (scrolly)
lea topazfont,a0
jsr -$48(a6) ; OpenFont
move.l d0,d7
move.l d0,a0
lea rastport,a1
jsr -$42(a6) ; SetFont
move.l d7,d0
lea scrastport,a1 ; SetFont
jsr -$42(a6)
bsr dodisplay ; Print menu choices.
move.l #copl,$dff080 ; Setup copperlist
rts
dodisplay:
moveq #0,d7 ; Item no.
moveq #1,d6 ; Pen no.
move.l #110,d5 ; Y pos'n
lp:
cmpi.b #7,d7
bgt.s isright
moveq #32,d4 ; X pos'n
bra.s notright
isright:
move.l #160,d4
notright:
move.l d4,d0
move.l d5,d1
lea rastport,a1 ; Move
move.l gfxbase,a6
jsr -240(a6)
move.l d6,d0
lea rastport,a1
jsr -$156(a6) ; SetAPen
lea thenames,a0
move.l d7,d0
mulu #20,d0
lea (a0,d0.w),a0
moveq #20,d0
lea rastport,a1
jsr -$3c(a6) ; Text
addq.b #1,d7
addq.b #1,d6
add.l #10,d5
cmpi.b #8,d7
bne.s nonw
move.l #110,d5 ; Ypos
nonw:
cmpi.b #15,d7
bne.s nolast
moveq #31,d6
nolast:
cmpi.b #16,d7
bne.s lp
bsr drawbar ; Place bounce bar on screen
rts
thenames:
dc " 1.Some stuff "
dc " 2.Some other "
dc " 3.Blaha "
dc " 4.So what? "
dc " 5 123 "
dc " 6 "
dc " 7 "
dc " 8 444 "
dc " 9 "
dc "10 5873 "
dc "11 "
dc "12 "
dc "13 "
dc "14 "
dc "15 "
dc "16 "
topazfont:dc.l topaz
dc.b 0,8,0,0
topaz:dc "topaz.font",0,0
scbitmap:blk 50,0
bitmap:blk 50,0
rastport:blk 100,0
scrastport:blk 100,0
doflash:
lea flash,a0
move.w (a0),d7
moveq #30,d0
lp2:
move.w 8(a0),(a0)
addq.l #8,a0
dbf d0,lp2
move.w d7,(a0)
rts
dostars:
bsr resetpix
move.l #99,d6
moveq #0,d1 ; Y position
moveq #0,d0
lea xtab,a6 ; XPOSITION table
lea stab,a5 ; Speed table
lea $50000,a0
lea $51f40,a1
lea $53e80,a2
lea $55dc0,a3
lea $57d00,a4
moveq #0,d5
loopitman:
move.w (a6)+,d0 ; Get x pos'n
move.b (a5)+,d5 ; Get speed
moveq #80,d4
add.w d4,a0
add.w d4,a1
add.w d4,a2
add.w d4,a3
add.w d4,a4
move.w d0,d2
asr.w #3,d2 ; Divide by eight
not.b d0 ; Coz' numbered from right
andi.w #7,d0
move.l a0,-(a7)
move.l tabptr,a0
addq.l #1,tabptr
move.b (a0),d4
move.l (a7)+,a0
tst.b d4
bne.s noclr
bclr d0,0(a4,d2.b) ; Clear old star
bclr d0,0(a3,d2.b)
bclr d0,0(a2,d2.b)
noclr:
add.w d5,-2(a6) ; Current XPosition
sub.w d5,d0
bpl.s noincm
andi.b #7,d0
addq.b #1,d2
cmpi.w #319,-2(a6)
ble.s noincm
move.w #0,-2(a6)
subi.w #$28,d2
moveq #7,d0
noincm:
move.l a5,d7
move.l tabptr,a5
btst d0,0(a0,d2.b)
bne.s cret
btst d0,0(a1,d2.b)
bne.s cret
btst d0,0(a2,d2.b)
bne.s cret
btst d0,0(a3,d2.b)
bne.s cret
btst d0,0(a4,d2.b)
cret:
sne -1(a5)
bne.s noset
bset d0,0(a4,d2.b)
cmp.b #1,d5
beq.s noset
cmp.b #2,d5
bne.s lvl3
bset d0,0(a3,d2.b)
bra.s noset
lvl3:
bset d0,0(a2,d2.b)
noset:
move.l d7,a5
dbf d6,loopitman
rts
resetpix:
move.l #sttab,tabptr
rts
tabptr:dc.l sttab
xtab:
dc.w 000,040,034,012,190,080,270,056,091,123
dc.w 075,276,260,005,073,069,132,319,045,065
dc.w 011,033,012,232,290,180,070,156,191,135
dc.w 175,123,187,054,173,269,232,119,045,021
dc.w 088,093,043,174,239,110,042,078,099,063
dc.w 192,310,220,222,132,176,128,033,014,098
dc.w 011,033,012,232,290,180,070,156,191,135
dc.w 175,123,187,054,173,269,232,119,045,021
dc.w 088,093,043,174,239,110,042,078,099,063
dc.w 192,310,220,222,132,176,128,033,014,098
stab:
dc.b 1,3,2,1,1,3,2,2,2,3,2,2,1,3,2,2,1,2,1,1
dc.b 3,3,1,1,2,1,3,2,2,2,3,3,1,3,2,1,2,3,2,1
dc.b 3,2,1,1,3,3,2,3,3,1,1,1,2,3,1,1,3,2,2,1
dc.b 3,3,1,1,2,1,3,2,2,2,3,3,1,3,2,1,2,3,2,1
dc.b 3,2,1,1,3,3,2,3,3,1,1,1,2,3,1,1,3,2,2,1
sttab:
blk 100,255
doscroll:
move.w #$e9f0,$dff040
clr.w $dff042
move.l #-1,$dff044
move.l #$5a060,$dff050
move.l #$5a05e,$dff054
clr.l $dff064
move.w #$8*64+$30,$dff058
subq.w #1,count
bne.s nonew
move.w #4,count
wt:
btst #$e,$dff002
bne.s wt
bsr scrollstuff
nonew:
rts
count:dc.w 4
scrollstuff:
move.l charp,a0
bsr printitman
addq.l #1,charp
move.l charp,a0
tst.b (a0)
bne.s noend
move.l #$5c000,charp
noend:
rts
charp:dc.l $5c000
printitman:
lea charset,a5
moveq #0,d0
moveq #0,d1
move.b (a0),d0
divu #40,d0 ; Get row no.
swap d0
move.w d0,d1 ; Where in row
swap d0
mulu #320,d0 ; Get real row offset
adda.l d0,a5
adda.l d1,a5
moveq #7,d2
lea $5a08f,a4
pt:
move.b (a5),(a4)
adda.l #48,a4
adda.l #40,a5
dbf d2,pt
rts
drawbar:
lea bar,a0
lea $50000+3239,a1
lea $51f40+3239,a2
lea $53e80+3239,a3
lea $55dc0+3239,a4
move.l #439,d7
move.w d7,d0
pl1:
move.b (a0)+,(a1)+
dbf d0,pl1
move.w d7,d0
pl2:
move.b (a0)+,(a2)+
dbf d0,pl2
move.w d7,d0
pl3:
move.b (a0)+,(a3)+
dbf d0,pl3
move.w d7,d0
pl4:
move.b (a0)+,(a4)+
dbf d0,pl4
rts
jumptable:
dc.w 44,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24
dc.w 23,22,21,20,19,18,17,16,15,15,14,13,12,11,11,10,9,9,8,7
dc.w 7,6,6,5,5,4,4,3,3,2,2,2,1,1,1,0,0,0,0,0
dc.w 0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,2,2,2,3
dc.w 3,4,4,4,5,6,6,7,7,8,9,9,10,11,11,12,13,14,15,15
dc.w 16,17,18,19,20,21,22,23,24,24,25,26,27,29,30,31,32,33,34,35
dc.w 36,37,38,39,40,41,42,44
level3irq:
movem.l d0/d1/d2/d3/d4/d5/d6/d7/a0/a1/a2/a3/a4/a5/a6,-(a7)
bsr dostars
bsr doscroll
bsr doflash
jsr $7f150
bsr dobobs
movem.l (a7)+,d0/d1/d2/d3/d4/d5/d6/d7/a0/a1/a2/a3/a4/a5/a6
af3:jmp 0
waitblitter:
btst #6,$dff002
bne.s waitblitter
rts
intablep:dc.b 0
intablea:dc.b 40
intables:dc.b 80,0
dobobs:
addq.b #2,intablep
addq.b #2,intablea
addq.b #2,intables
moveq #0,d0
lea jumptable,a0
move.b intablep,d0
move.w (a0,d0.w),d0 ; Get y pos'n
mulu #40,d0 ; Offset
move.l d0,a0
move.l a0,a1
move.l a1,a2
move.l a2,a3
add.l #$5000a,a0
add.l #$51f4a,a1
add.l #$53e8a,a2
add.l #$55dca,a3
moveq #0,d0
move.l d0,1400(a0)
move.w d0,1404(a0)
move.l d0,1440(a0)
move.w d0,1444(a0)
move.l d0,-80(a0)
move.w d0,-76(a0)
move.l d0,-40(a0)
move.w d0,-36(a0)
move.l d0,1400(a1)
move.w d0,1404(a1)
move.l d0,1440(a1)
move.w d0,1444(a1)
move.l d0,-80(a1)
move.w d0,-76(a1)
move.l d0,-40(a1)
move.w d0,-36(a1)
move.l d0,1400(a2)
move.w d0,1404(a2)
move.l d0,1440(a2)
move.w d0,1444(a2)
move.l d0,-80(a2)
move.w d0,-76(a2)
move.l d0,-40(a2)
move.w d0,-36(a2)
move.l d0,1400(a3)
move.w d0,1404(a3)
move.l d0,1440(a3)
move.w d0,1444(a3)
move.l d0,-80(a3)
move.w d0,-76(a3)
move.l d0,-40(a3)
move.w d0,-36(a3)
bsr waitblitter
move.l #pbob,$dff050 ; BLTAPT
move.l a0,$dff054 ; BLTDPT
move.w #$09f0,$dff040 ; BLTCON0
move.w #$0000,$dff042 ; BLTCON1
move.l #-1,$dff044
move.w #0,$dff064 ; BLTAMOD
move.w #$22,$dff066 ; BLTDMOD(skip $24 bytes/row)
move.w #35*64+3,$dff058 ; BLTSIZE(11 rows, 16 pixels w)
bsr waitblitter
move.l #pbob+210,$dff050 ; BLTAPT
move.l a1,$dff054 ; BLTDPT
move.w #$09f0,$dff040 ; BLTCON0
move.w #$0000,$dff042 ; BLTCON1
move.l #-1,$dff044
move.w #0,$dff064 ; BLTAMOD
move.w #$22,$dff066 ; BLTDMOD(skip $24 bytes/row)
move.w #35*64+3,$dff058 ; BLTSIZE(11 rows, 16 pixels w)
bsr waitblitter
move.l #pbob+420,$dff050 ; BLTAPT
move.l a2,$dff054 ; BLTDPT
move.w #$09f0,$dff040 ; BLTCON0
move.w #$0000,$dff042 ; BLTCON1
move.l #-1,$dff044
move.w #0,$dff064 ; BLTAMOD
move.w #$22,$dff066 ; BLTDMOD(skip $24 bytes/row)
move.w #35*64+3,$dff058 ; BLTSIZE(11 rows, 16 pixels w)
bsr waitblitter
move.l #pbob+630,$dff050
move.l a3,$dff054
move.w #$09f0,$dff040 ; BLTCON0
move.w #$0000,$dff042 ; BLTCON1
move.l #-1,$dff044
move.w #0,$dff064 ; BLTAMOD
move.w #$22,$dff066 ; BLTDMOD(skip $24 bytes/row)
move.w #35*64+3,$dff058 ; BLTSIZE(11 rows, 16 pixels w)
moveq #0,d0
lea jumptable,a0
move.b intablea,d0
move.w (a0,d0.w),d0 ; Get y pos'n
mulu #40,d0
move.l d0,a0
move.l a0,a1
move.l a1,a2
move.l a2,a3
add.l #$50010,a0
add.l #$51f50,a1
add.l #$53e90,a2
add.l #$55dd0,a3
moveq #0,d0
move.l d0,1400(a0)
move.w d0,1404(a0)
move.l d0,1440(a0)
move.w d0,1444(a0)
move.l d0,-80(a0)
move.w d0,-76(a0)
move.l d0,-40(a0)
move.w d0,-36(a0)
move.l d0,1400(a1)
move.w d0,1404(a1)
move.l d0,1440(a1)
move.w d0,1444(a1)
move.l d0,-80(a1)
move.w d0,-76(a1)
move.l d0,-40(a1)
move.w d0,-36(a1)
move.l d0,1400(a2)
move.w d0,1404(a2)
move.l d0,1440(a2)
move.w d0,1444(a2)
move.l d0,-80(a2)
move.w d0,-76(a2)
move.l d0,-40(a2)
move.w d0,-36(a2)
move.l d0,1400(a3)
move.w d0,1404(a3)
move.l d0,1440(a3)
move.w d0,1444(a3)
move.l d0,-80(a3)
move.w d0,-76(a3)
move.l d0,-40(a3)
move.w d0,-36(a3)
bsr waitblitter
move.l #abob,$dff050 ; BLTAPT
move.l a0,$dff054 ; BLTDPT
move.w #$09f0,$dff040 ; BLTCON0
move.w #$0000,$dff042 ; BLTCON1
move.l #-1,$dff044
move.w #0,$dff064 ; BLTAMOD
move.w #$22,$dff066 ; BLTDMOD(skip $24 bytes/row)
move.w #35*64+3,$dff058 ; BLTSIZE(11 rows, 16 pixels w)
bsr waitblitter
move.l #abob+210,$dff050 ; BLTAPT
move.l a1,$dff054 ; BLTDPT
move.w #$09f0,$dff040 ; BLTCON0
move.w #$0000,$dff042 ; BLTCON1
move.l #-1,$dff044
move.w #0,$dff064 ; BLTAMOD
move.w #$22,$dff066 ; BLTDMOD(skip $24 bytes/row)
move.w #35*64+3,$dff058 ; BLTSIZE(11 rows, 16 pixels w)
bsr waitblitter
move.l #abob+420,$dff050 ; BLTAPT
move.l a2,$dff054 ; BLTDPT
move.w #$09f0,$dff040 ; BLTCON0
move.w #$0000,$dff042 ; BLTCON1
move.l #-1,$dff044
move.w #0,$dff064 ; BLTAMOD
move.w #$22,$dff066 ; BLTDMOD(skip $24 bytes/row)
move.w #35*64+3,$dff058 ; BLTSIZE(11 rows, 16 pixels w)
bsr waitblitter
move.l #abob+630,$dff050 ; BLTAPT
move.l a3,$dff054 ; BLTDPT
move.w #$09f0,$dff040 ; BLTCON0
move.w #$0000,$dff042 ; BLTCON1
move.l #-1,$dff044
move.w #0,$dff064 ; BLTAMOD
move.w #$22,$dff066 ; BLTDMOD(skip $24 bytes/row)
move.w #35*64+3,$dff058 ; BLTSIZE(11 rows, 16 pixels w)
moveq #0,d0
lea jumptable,a0
move.b intables,d0
move.w (a0,d0.w),d0 ; Get y pos'n
mulu #40,d0
move.l d0,a0 ; Offset
move.l a0,a1
move.l a1,a2
move.l a2,a3
add.l #$50016,a0
add.l #$51f56,a1
add.l #$53e96,a2
add.l #$55dd6,a3
moveq #0,d0
move.l d0,1400(a0)
move.w d0,1404(a0)
move.l d0,1440(a0)
move.w d0,1444(a0)
move.l d0,-80(a0)
move.w d0,-76(a0)
move.l d0,-40(a0)
move.w d0,-36(a0)
move.l d0,1400(a1)
move.w d0,1404(a1)
move.l d0,1440(a1)
move.w d0,1444(a1)
move.l d0,-80(a1)
move.w d0,-76(a1)
move.l d0,-40(a1)
move.w d0,-36(a1)
move.l d0,1400(a2)
move.w d0,1404(a2)
move.l d0,1440(a2)
move.w d0,1444(a2)
move.l d0,-80(a2)
move.w d0,-76(a2)
move.l d0,-40(a2)
move.w d0,-36(a2)
move.l d0,1400(a3)
move.w d0,1404(a3)
move.l d0,1440(a3)
move.w d0,1444(a3)
move.l d0,-80(a3)
move.w d0,-76(a3)
move.l d0,-40(a3)
move.w d0,-36(a3)
bsr waitblitter
move.l #sbob,$dff050 ; BLTAPT
move.l a0,$dff054 ; BLTDPT
move.w #$09f0,$dff040 ; BLTCON0
move.w #$0000,$dff042 ; BLTCON1
move.l #-1,$dff044
move.w #0,$dff064 ; BLTAMOD
move.w #$22,$dff066 ; BLTDMOD(skip $24 bytes/row)
move.w #35*64+3,$dff058 ; BLTSIZE(11 rows, 16 pixels w)
bsr waitblitter
move.l #sbob+210,$dff050 ; BLTAPT
move.l a1,$dff054 ; BLTDPT
move.w #$09f0,$dff040 ; BLTCON0
move.w #$0000,$dff042 ; BLTCON1
move.l #-1,$dff044
move.w #0,$dff064 ; BLTAMOD
move.w #$22,$dff066 ; BLTDMOD(skip $24 bytes/row)
move.w #35*64+3,$dff058 ; BLTSIZE(11 rows, 16 pixels w)
bsr waitblitter
move.l #sbob+420,$dff050 ; BLTAPT
move.l a2,$dff054 ; BLTDPT
move.w #$09f0,$dff040 ; BLTCON0
move.w #$0000,$dff042 ; BLTCON1
move.l #-1,$dff044
move.w #0,$dff064 ; BLTAMOD
move.w #$22,$dff066 ; BLTDMOD(skip $24 bytes/row)
move.w #35*64+3,$dff058 ; BLTSIZE(11 rows, 16 pixels w)
bsr waitblitter
move.l #sbob+630,$dff050 ; BLTAPT
move.l a3,$dff054 ; BLTDPT
move.w #$09f0,$dff040 ; BLTCON0
move.w #$0000,$dff042 ; BLTCON1
move.l #-1,$dff044
move.w #0,$dff064
move.w #$22,$dff066
move.w #35*64+3,$dff058
rts
charset:blk 1280,0
bar:blk.l 440,0
pbob:blk 904,0
abob:blk 904,0
sbob:blk 904,0
copl:
dc.w $0100,$5200
dc.w $00e0,$0005,$00e2,$0000,$00e4,$0005,$00e6,$1f40
dc.w $00e8,$0005,$00ea,$3e80,$00ec,$0005,$00ee,$5dc0
dc.w $00f0,$0005,$00f2,$7d00,$0120,$0000,$0122,$0000
dc.w $0124,$0000,$0126,$0000,$0128,$0000,$012a,$0000
dc.w $012c,$0000,$012e,$0000,$0130,$0000,$0132,$0000
dc.w $0134,$0000,$0136,$0000,$0138,$0000,$013a,$0000
dc.w $013c,$0000,$013e,$0000
dc.w $008e,$2c81,$0090,$f4c1,$0092,$0038,$0094,$00d0
dc.w $0108,$0000,$010a,$0000,$0102,$0088,$0104,$0000
dc.w $0180,$0000,$01a0,$0bbb,$01b0,$0ddd,$01a8,$0fff
dc.w $2b01,$ff00,$0180,$0000
cols:
dc.w $0182,$0f00,$0184,$000f,$0186,$0aad,$0188,$077f
dc.w $018a,$055f,$018c,$0226,$018e,$0448,$0190,$0fff
dc.w $0192,$0ddf,$0194,$0bbe,$0196,$099c,$0198,$088b
dc.w $019a,$077a,$019c,$066a,$019e,$0559,$9001,$ff00
dc.w $0102,$0000
mcol:
dc.w $0182,$000f,$0184,$0f00,$0186,$000f,$0188,$0f00
dc.w $018a,$000f,$018c,$0f00,$018e,$000f,$0190,$0f00
dc.w $0192,$000f,$0194,$0f00,$0196,$000f,$0198,$0f00
dc.w $019a,$000f,$019c,$0f00,$019e,$000f,$01be,$0f00
dc.w $f501,$ff00,$008e,$ff80,$0180,$0000,$0090,$0ae0,$0092,$0028
dc.w $0094,$00d8,$0108,$0002,$010a,$0002,$0102,$0000
dc.w $0104,$0000,$0100,$1200,$00e0,$0005,$00e2,$a000
dc.w $ffdf,$fffe,$0182
flash:
dc.w $000f,$0201,$ff00,$0182
dc.w $000e,$0301,$ff00,$0182
dc.w $000d,$0401,$ff00,$0182
dc.w $000c,$0501,$ff00,$0182
dc.w $000b,$0601,$ff00,$0182
dc.w $000a,$0701,$ff00,$0182
dc.w $0009,$0801,$ff00,$0182
dc.w $0008,$0901,$ff00,$0182
dc.w $0007,$0a01,$ff00,$0182
dc.w $0006,$0b01,$ff00,$0182
dc.w $0005,$0c01,$ff00,$0182
dc.w $0004,$0d01,$ff00,$0182
dc.w $0003,$0e01,$ff00,$0182
dc.w $0002,$0f01,$ff00,$0182
dc.w $0001,$1001,$ff00,$0182
dc.w $0000,$1101,$ff00,$0182
dc.w $0000,$1201,$ff00,$0182
dc.w $0001,$1301,$ff00,$0182
dc.w $0002,$1401,$ff00,$0182
dc.w $0003,$1501,$ff00,$0182
dc.w $0004,$1601,$ff00,$0182
dc.w $0005,$1701,$ff00,$0182
dc.w $0006,$1801,$ff00,$0182
dc.w $0007,$1901,$ff00,$0182
dc.w $0008,$1a01,$ff00,$0182
dc.w $0009,$1b01,$ff00,$0182
dc.w $000a,$1c01,$ff00,$0182
dc.w $000b,$1d01,$ff00,$0182
dc.w $000c,$1e01,$ff00,$0182
dc.w $000d,$1f01,$ff00,$0182
dc.w $000e,$2001,$ff00,$0182
dc.w $000f
dc.w $fffe,$fffe,0,0